package fisio.model;

import java.util.Date;
import java.util.Vector;

import fisio.global.Util;

import net.sf.json.JSONObject;

public class Paciente {
	
	private int id;
	private String nome;
	private boolean sexo;
	private Date data_nasc;
	private String profissao;
	private String fone1;
	private String fone2;
	private String email;
	private String login;
	private String senha;
	private String obs;
	private Foto foto;
	private Endereco endereco;
	private Vector<Avaliacao> avaliacoes;
	
	public Paciente(int id, String nome, boolean sexo, Date data_nasc, String profissao, String fone1, String fone2, String email, String login, String senha, String obs, Foto foto, Endereco endereco, Vector<Avaliacao> avaliacoes){
		this.id = id;
		this.nome = nome;
		this.sexo = sexo;
		this.data_nasc = data_nasc;
		this.profissao = profissao;
		this.setFone1(fone1);
		this.setFone2(fone2);
		this.email = email;
		this.login = login;
		this.senha = senha;
		this.obs = obs;
		this.foto = foto;
		this.endereco = endereco;
		this.avaliacoes = avaliacoes;
	}
	
	public Paciente(int id){
		this.id = id;
	}
	
	public Paciente(String nome, boolean sexo, Date data_nasc, String profissao, String fone1, String fone2, String email, String login, String senha, String obs, Foto foto, Endereco endereco, Vector<Avaliacao> avaliacoes){		
		this.nome = nome;
		this.sexo = sexo;
		this.data_nasc = data_nasc;
		this.profissao = profissao;
		this.setFone1(fone1);
		this.setFone2(fone2);
		this.email = email;
		this.login = login;
		this.senha = senha;
		this.foto = foto;
		this.obs = obs;
		this.endereco = endereco;
		this.avaliacoes = avaliacoes;
	}
	
	public Paciente(int id, String nome, boolean sexo, Date data_nasc, String email){
		this.id = id;
		this.nome = nome;
		this.sexo = sexo;
		this.data_nasc = data_nasc;
		this.email = email;
	}
	
	public JSONObject toJSON() {
		JSONObject json = new JSONObject();
		json.put("id", this.id);
		json.put("nome", this.nome);
		json.put("sexo", this.sexo);
		json.put("data_nasc", this.data_nasc);
		json.put("email", this.email);
		return json;
	}

	public int getId(){
		return id;
	}
	
	public void setId(int id){
		this.id = id;
	}

	public String getNome(){
		return nome;
	}
	
	public void setNome(String nome){
		this.nome = nome;
	}

	public String getLogin(){
		return login;
	}

	public void setLogin(String login){
		this.login = login;
	}

	public boolean getSexo(){
		return sexo;
	}
	
	public void setSexo(boolean sexo){
		this.sexo = sexo;
	}

	public Date getDataNasc(){
		return data_nasc;
	}
	
	public String showDataNasc(){
		return Util.convertDateUtilToString(this.data_nasc);
	}
	
	public void setDataNasc(Date data_nasc){
		this.data_nasc = data_nasc;
	}

	public String getEmail(){
		return email;
	}
	
	public void setEmail(String email){
		this.email = email;
	}
	
	public String getSenha(){
		return senha;
	}
	
	public void setSenha(String senha){
		this.senha = senha;
	}
	
	public String getFone1(){
		return fone1;
	}
	
	public String showFone1(){
		return Util.maskFone(this.fone1);
	}
	
	public void setFone1(String fone1){
		this.fone1 = Util.unmaskFone(fone1);
	}
	
	public String getFone2(){
		return fone2;
	}
	
	public String showFone2(){
		return Util.maskFone(this.fone2);
	}
	
	public void setFone2(String fone2){
		this.fone2 = Util.unmaskFone(fone2);
	}

	public Foto getFoto(){
		return foto;
	}
	
	public void setFoto(Foto foto){
		this.foto = foto;
	}

	public String getProfissao(){
		return profissao;
	}

	public void setProfissao(String profissao){
		this.profissao = profissao;
	}

	public String getObs(){
		return obs;
	}

	public void setObs(String obs){
		this.obs = obs;
	}

	public Endereco getEndereco() {
		return endereco;
	}

	public void setEndereco(Endereco endereco) {
		this.endereco = endereco;
	}

	public Vector<Avaliacao> getAvaliacoes() {
		return avaliacoes;
	}

	public void setAvaliacoes(Vector<Avaliacao> avaliacoes) {
		this.avaliacoes = avaliacoes;
	}
}